//
// Swiftfin is subject to the terms of the Mozilla Public
// License, v2.0. If a copy of the MPL was not distributed with this
// file, you can obtain one at https://mozilla.org/MPL/2.0/.
//
// Copyright (c) 2025 Jellyfin & Jellyfin Contributors
//

import JellyfinAPI
import SwiftUI

struct SubtitleResultRow: View {

    // MARK: - Environment Variables

    @Environment(\.isSelected)
    private var isSelected

    // MARK: - Subtitle Variable

    let subtitle: RemoteSubtitleInfo

    // MARK: - Subtitle Action

    let action: () -> Void

    // MARK: - Body

    var body: some View {
        Button(action: action) {
            HStack {
                VStack(alignment: .leading, spacing: 4) {
                    Text(subtitle.name ?? L10n.unknown)
                        .font(.headline)
                        .fontWeight(.semibold)

                    LabeledContent(L10n.language, value: subtitle.threeLetterISOLanguageName ?? L10n.unknown)

                    if let downloadCount = subtitle.downloadCount {
                        LabeledContent(L10n.downloads, value: downloadCount.description)
                    }

                    if let rating = subtitle.communityRating {
                        LabeledContent(L10n.communityRating, value: String(format: "%.1f", rating))
                    }

                    if let author = subtitle.author {
                        LabeledContent(L10n.author, value: author)
                    }

                    if let format = subtitle.format {
                        LabeledContent(L10n.format, value: format)
                    }
                }
                .foregroundStyle(isSelected ? .primary : .secondary, .secondary)
                .font(.caption)

                Spacer()

                ListRowCheckbox()
            }
        }
    }
}
